package com.ruoyi.tsjData.service.impl;

import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.tsjData.domain.plat.DataTshjZhdo;
import com.ruoyi.tsjData.mapper.DataTshjZhdoMapper;
import com.ruoyi.tsjData.service.IDataTshjZhdoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncResult;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.concurrent.Future;


/**
 * 提升机振动测试项Service业务层处理
 * 
 * @author ruoyi
 * @date 2024-02-28
 */
@Service
public class DataTshjZhdoServiceImpl implements IDataTshjZhdoService
{
    @Autowired
    private DataTshjZhdoMapper dataTshjZhdoMapper;

    /**
     * 查询提升机振动测试项
     * 
     * @param zhdoId 提升机振动测试项主键
     * @return 提升机振动测试项
     */
    @Override
    public DataTshjZhdo selectDataTshjZhdoByZhdoId(Long zhdoId)
    {
        return dataTshjZhdoMapper.selectDataTshjZhdoByZhdoId(zhdoId);
    }

    /**
     * 查询提升机振动测试项列表
     * 
     * @param dataTshjZhdo 提升机振动测试项
     * @return 提升机振动测试项
     */
    @Override
    public List<DataTshjZhdo> selectDataTshjZhdoList(DataTshjZhdo dataTshjZhdo)
    {
        return dataTshjZhdoMapper.selectDataTshjZhdoList(dataTshjZhdo);
    }

    /**
     * 查询提升机振动测试项列表
     *
     * @param dataTaskId
     * @return 提升机振动测试项集合
     */
    @Async("threadPoolKy")
    @Override
    public Future<List<DataTshjZhdo>> selectDataTshjZhdoByDataTaskId(Long dataTaskId) {
        return new AsyncResult<>(dataTshjZhdoMapper.selectDataTshjZhdoByDataTaskId(dataTaskId));
    }

    /**
     * 新增提升机振动测试项
     * 
     * @param dataTshjZhdo 提升机振动测试项
     * @return 结果
     */
    @Override
    public int insertDataTshjZhdo(DataTshjZhdo dataTshjZhdo)
    {
        dataTshjZhdo.setCreateTime(DateUtils.getNowDate());
        return dataTshjZhdoMapper.insertDataTshjZhdo(dataTshjZhdo);
    }

    /**
     * 批量新增
     *
     * @param dataTshjZhdo
     */
    @Override
    public int batchDataTshjZhdo(List<DataTshjZhdo> dataTshjZhdo) {
        return dataTshjZhdoMapper.batchDataTshjZhdo(dataTshjZhdo);
    }

    /**
     * 修改提升机振动测试项
     * 
     * @param dataTshjZhdo 提升机振动测试项
     * @return 结果
     */
    @Override
    public int updateDataTshjZhdo(DataTshjZhdo dataTshjZhdo)
    {
        dataTshjZhdo.setUpdateTime(DateUtils.getNowDate());
        return dataTshjZhdoMapper.updateDataTshjZhdo(dataTshjZhdo);
    }

    /**
     * 修改提升机-振动测试
     *
     * @param dataTaskIds 振动测试任务id
     * @return 结果
     */
    @Override
    public int updateDataTshjZhdoByDataTaskIds(Long[] dataTaskIds) {
        return dataTshjZhdoMapper.updateDataTshjZhdoByDataTaskIds(dataTaskIds);
    }

    /**
     * 修改测试数据状态变更2
     *
     * @param dataTaskId
     * @param zhdoId
     */
    @Override
    public int updateDataTshjZhdoByZhdoId(Long dataTaskId, Long zhdoId) {
        return dataTshjZhdoMapper.updateDataTshjZhdoByZhdoId(dataTaskId, zhdoId);
    }

    /**
     * 批量删除提升机振动测试项
     * 
     * @param zhdoIds 需要删除的提升机振动测试项主键
     * @return 结果
     */
    @Override
    public int deleteDataTshjZhdoByZhdoIds(Long[] zhdoIds)
    {
        return dataTshjZhdoMapper.deleteDataTshjZhdoByZhdoIds(zhdoIds);
    }

    /**
     * 删除提升机振动测试项信息
     * 
     * @param zhdoId 提升机振动测试项主键
     * @return 结果
     */
    @Override
    public int deleteDataTshjZhdoByZhdoId(Long zhdoId)
    {
        return dataTshjZhdoMapper.deleteDataTshjZhdoByZhdoId(zhdoId);
    }
}
